[INFO] cloning repository https://github.com/Zuzuk-null/3d_ascii_engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Zuzuk-null/3d_ascii_engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZuzuk-null%2F3d_ascii_engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZuzuk-null%2F3d_ascii_engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f7a84b393933dab6c6f4baae5f0ded3ce63c2c21
[INFO] checking Zuzuk-null/3d_ascii_engine against master#9610dfe5a9a731ced1ea4923ecbd0c57fe367898 for beta-170-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZuzuk-null%2F3d_ascii_engine" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Zuzuk-null/3d_ascii_engine on toolchain 9610dfe5a9a731ced1ea4923ecbd0c57fe367898
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Zuzuk-null/3d_ascii_engine
[INFO] finished tweaking git repo https://github.com/Zuzuk-null/3d_ascii_engine
[INFO] tweaked toml for git repo https://github.com/Zuzuk-null/3d_ascii_engine written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Zuzuk-null/3d_ascii_engine already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cffed90a3811a0087825743043d4fae295be664fd5f8e16e9a922684b41e3f4c
[INFO] running `Command { std: "docker" "start" "-a" "cffed90a3811a0087825743043d4fae295be664fd5f8e16e9a922684b41e3f4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cffed90a3811a0087825743043d4fae295be664fd5f8e16e9a922684b41e3f4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cffed90a3811a0087825743043d4fae295be664fd5f8e16e9a922684b41e3f4c", kill_on_drop: false }`
[INFO] [stdout] cffed90a3811a0087825743043d4fae295be664fd5f8e16e9a922684b41e3f4c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 665bf7fe4877415252d32ccc5246700ffab8614bd2b7a2942a25c6538a91a525
[INFO] running `Command { std: "docker" "start" "-a" "665bf7fe4877415252d32ccc5246700ffab8614bd2b7a2942a25c6538a91a525", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.77
[INFO] [stderr]     Checking numtoa v0.1.0
[INFO] [stderr]     Checking termion v1.5.5
[INFO] [stderr]     Checking Lol v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cmp::max`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::max;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `Write`, `stdin`, `stdout`
[INFO] [stdout]  --> src/main.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{Read, stdin, stdout, Write};
[INFO] [stdout]   |               ^^^^  ^^^^^  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::async_stdin`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use termion::async_stdin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::max`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::max;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `Write`, `stdin`, `stdout`
[INFO] [stdout]  --> src/main.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{Read, stdin, stdout, Write};
[INFO] [stdout]   |               ^^^^  ^^^^^  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::async_stdin`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use termion::async_stdin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/bivector3.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] 2 | struct Bivector3D {
[INFO] [stdout] 3 |     yz: f32,
[INFO] [stdout]   |     ^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/bivector3.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 4 |     xz: f32,
[INFO] [stdout]   |     ^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/bivector3.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 5 |     xy: f32,
[INFO] [stdout]   |     ^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Eq` is not satisfied
[INFO] [stdout]  --> src/bivector3.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |                           -- in this derive macro expansion
[INFO] [stdout] 2 | struct Bivector3D {
[INFO] [stdout] 3 |     yz: f32,
[INFO] [stdout]   |     ^^^^^^^ the trait `Eq` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Eq`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]  --> /rustc/9610dfe5a9a731ced1ea4923ecbd0c57fe367898/library/core/src/cmp.rs:313:1
[INFO] [stdout]   = note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/point3d.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] 4 | pub struct Point3D {
[INFO] [stdout] 5 |     pub x: f32,
[INFO] [stdout]   |     ^^^^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/point3d.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 6 |     pub y: f32,
[INFO] [stdout]   |     ^^^^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/point3d.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub z: f32,
[INFO] [stdout]   |     ^^^^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Eq` is not satisfied
[INFO] [stdout]  --> src/point3d.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |                           -- in this derive macro expansion
[INFO] [stdout] 4 | pub struct Point3D {
[INFO] [stdout] 5 |     pub x: f32,
[INFO] [stdout]   |     ^^^^^^^^^^ the trait `Eq` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Eq`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]  --> /rustc/9610dfe5a9a731ced1ea4923ecbd0c57fe367898/library/core/src/cmp.rs:313:1
[INFO] [stdout]   = note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/bivector3.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] 2 | struct Bivector3D {
[INFO] [stdout] 3 |     yz: f32,
[INFO] [stdout]   |     ^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/bivector3.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 4 |     xz: f32,
[INFO] [stdout]   |     ^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/bivector3.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 5 |     xy: f32,
[INFO] [stdout]   |     ^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Eq` is not satisfied
[INFO] [stdout]  --> src/bivector3.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |                           -- in this derive macro expansion
[INFO] [stdout] 2 | struct Bivector3D {
[INFO] [stdout] 3 |     yz: f32,
[INFO] [stdout]   |     ^^^^^^^ the trait `Eq` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Eq`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]  --> /rustc/9610dfe5a9a731ced1ea4923ecbd0c57fe367898/library/core/src/cmp.rs:313:1
[INFO] [stdout]   = note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/point3d.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] 4 | pub struct Point3D {
[INFO] [stdout] 5 |     pub x: f32,
[INFO] [stdout]   |     ^^^^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/point3d.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 6 |     pub y: f32,
[INFO] [stdout]   |     ^^^^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Ord` is not satisfied
[INFO] [stdout]  --> src/point3d.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |          --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub z: f32,
[INFO] [stdout]   |     ^^^^^^^^^^ the trait `Ord` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Ord`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout]   = note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: Eq` is not satisfied
[INFO] [stdout]  --> src/point3d.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Ord, PartialOrd, Eq, PartialEq, Copy, Clone)]
[INFO] [stdout]   |                           -- in this derive macro expansion
[INFO] [stdout] 4 | pub struct Point3D {
[INFO] [stdout] 5 |     pub x: f32,
[INFO] [stdout]   |     ^^^^^^^^^^ the trait `Eq` is not implemented for `f32`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the following other types implement trait `Eq`:
[INFO] [stdout]             i128
[INFO] [stdout]             i16
[INFO] [stdout]             i32
[INFO] [stdout]             i64
[INFO] [stdout]             i8
[INFO] [stdout]             isize
[INFO] [stdout]             u128
[INFO] [stdout]             u16
[INFO] [stdout]           and 4 others
[INFO] [stdout] note: required by a bound in `AssertParamIsEq`
[INFO] [stdout]  --> /rustc/9610dfe5a9a731ced1ea4923ecbd0c57fe367898/library/core/src/cmp.rs:313:1
[INFO] [stdout]   = note: this error originates in the derive macro `Eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let compare_helper = Point3D::new(2, 2, 2);
[INFO] [stdout]    |                              ^^^^^^^^^^^^ -  -  - expected `f32`, found integer
[INFO] [stdout]    |                                           |  |
[INFO] [stdout]    |                                           |  expected `f32`, found integer
[INFO] [stdout]    |                                           expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let compare_helper = Point3D::new(2.0, 2, 2);
[INFO] [stdout]    |                                           ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let compare_helper = Point3D::new(2, 2.0, 2);
[INFO] [stdout]    |                                              ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let compare_helper = Point3D::new(2, 2, 2.0);
[INFO] [stdout]    |                                                 ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let compare_helper = Point3D::new(2, 2, 2);
[INFO] [stdout]    |                              ^^^^^^^^^^^^ -  -  - expected `f32`, found integer
[INFO] [stdout]    |                                           |  |
[INFO] [stdout]    |                                           |  expected `f32`, found integer
[INFO] [stdout]    |                                           expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let compare_helper = Point3D::new(2.0, 2, 2);
[INFO] [stdout]    |                                           ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let compare_helper = Point3D::new(2, 2.0, 2);
[INFO] [stdout]    |                                              ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let compare_helper = Point3D::new(2, 2, 2.0);
[INFO] [stdout]    |                                                 ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:29:46
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let ray_position = start_point + Point3D::new(1, 1, 1);
[INFO] [stdout]    |                                              ^^^^^^^^^^^^ -  -  - expected `f32`, found integer
[INFO] [stdout]    |                                                           |  |
[INFO] [stdout]    |                                                           |  expected `f32`, found integer
[INFO] [stdout]    |                                                           expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let ray_position = start_point + Point3D::new(1.0, 1, 1);
[INFO] [stdout]    |                                                           ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let ray_position = start_point + Point3D::new(1, 1.0, 1);
[INFO] [stdout]    |                                                              ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let ray_position = start_point + Point3D::new(1, 1, 1.0);
[INFO] [stdout]    |                                                                 ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:29:46
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let ray_position = start_point + Point3D::new(1, 1, 1);
[INFO] [stdout]    |                                              ^^^^^^^^^^^^ -  -  - expected `f32`, found integer
[INFO] [stdout]    |                                                           |  |
[INFO] [stdout]    |                                                           |  expected `f32`, found integer
[INFO] [stdout]    |                                                           expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let ray_position = start_point + Point3D::new(1.0, 1, 1);
[INFO] [stdout]    |                                                           ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let ray_position = start_point + Point3D::new(1, 1.0, 1);
[INFO] [stdout]    |                                                              ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let ray_position = start_point + Point3D::new(1, 1, 1.0);
[INFO] [stdout]    |                                                                 ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:56:21
[INFO] [stdout]    |
[INFO] [stdout] 56 |         coordinate: Point3D::new(20, 20, 5),
[INFO] [stdout]    |                     ^^^^^^^^^^^^ --  --  - expected `f32`, found integer
[INFO] [stdout]    |                                  |   |
[INFO] [stdout]    |                                  |   expected `f32`, found integer
[INFO] [stdout]    |                                  expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 56 |         coordinate: Point3D::new(20.0, 20, 5),
[INFO] [stdout]    |                                  ~~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 56 |         coordinate: Point3D::new(20, 20.0, 5),
[INFO] [stdout]    |                                      ~~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 56 |         coordinate: Point3D::new(20, 20, 5.0),
[INFO] [stdout]    |                                          ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:56:21
[INFO] [stdout]    |
[INFO] [stdout] 56 |         coordinate: Point3D::new(20, 20, 5),
[INFO] [stdout]    |                     ^^^^^^^^^^^^ --  --  - expected `f32`, found integer
[INFO] [stdout]    |                                  |   |
[INFO] [stdout]    |                                  |   expected `f32`, found integer
[INFO] [stdout]    |                                  expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 56 |         coordinate: Point3D::new(20.0, 20, 5),
[INFO] [stdout]    |                                  ~~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 56 |         coordinate: Point3D::new(20, 20.0, 5),
[INFO] [stdout]    |                                      ~~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 56 |         coordinate: Point3D::new(20, 20, 5.0),
[INFO] [stdout]    |                                          ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |         angle: Angle::new(0, 0, 0),
[INFO] [stdout]    |                ^^^^^^^^^^ -  -  - expected `f32`, found integer
[INFO] [stdout]    |                           |  |
[INFO] [stdout]    |                           |  expected `f32`, found integer
[INFO] [stdout]    |                           expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 57 |         angle: Angle::new(0.0, 0, 0),
[INFO] [stdout]    |                           ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 57 |         angle: Angle::new(0, 0.0, 0),
[INFO] [stdout]    |                              ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 57 |         angle: Angle::new(0, 0, 0.0),
[INFO] [stdout]    |                                 ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |         angle: Angle::new(0, 0, 0),
[INFO] [stdout]    |                ^^^^^^^^^^ -  -  - expected `f32`, found integer
[INFO] [stdout]    |                           |  |
[INFO] [stdout]    |                           |  expected `f32`, found integer
[INFO] [stdout]    |                           expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 57 |         angle: Angle::new(0.0, 0, 0),
[INFO] [stdout]    |                           ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 57 |         angle: Angle::new(0, 0.0, 0),
[INFO] [stdout]    |                              ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 57 |         angle: Angle::new(0, 0, 0.0),
[INFO] [stdout]    |                                 ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:62:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |         coordinate: Point3D::new(0, 0, 0),
[INFO] [stdout]    |                     ^^^^^^^^^^^^ -  -  - expected `f32`, found integer
[INFO] [stdout]    |                                  |  |
[INFO] [stdout]    |                                  |  expected `f32`, found integer
[INFO] [stdout]    |                                  expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 62 |         coordinate: Point3D::new(0.0, 0, 0),
[INFO] [stdout]    |                                  ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 62 |         coordinate: Point3D::new(0, 0.0, 0),
[INFO] [stdout]    |                                     ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 62 |         coordinate: Point3D::new(0, 0, 0.0),
[INFO] [stdout]    |                                        ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/main.rs:62:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |         coordinate: Point3D::new(0, 0, 0),
[INFO] [stdout]    |                     ^^^^^^^^^^^^ -  -  - expected `f32`, found integer
[INFO] [stdout]    |                                  |  |
[INFO] [stdout]    |                                  |  expected `f32`, found integer
[INFO] [stdout]    |                                  expected `f32`, found integer
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/point3d.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub(crate) fn new(x: f32, y: f32, z: f32) -> Point3D {
[INFO] [stdout]    |                   ^^^ ------  ------  ------
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 62 |         coordinate: Point3D::new(0.0, 0, 0),
[INFO] [stdout]    |                                  ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 62 |         coordinate: Point3D::new(0, 0.0, 0),
[INFO] [stdout]    |                                     ~~~
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 62 |         coordinate: Point3D::new(0, 0, 0.0),
[INFO] [stdout]    |                                        ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 |         size: 5,
[INFO] [stdout]    |               ^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               expected `f32`, found integer
[INFO] [stdout]    |               help: use a float literal: `5.0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 |         size: 5,
[INFO] [stdout]    |               ^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               expected `f32`, found integer
[INFO] [stdout]    |               help: use a float literal: `5.0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 14 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 14 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `Lol` (bin "Lol") due to 15 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `Lol` (bin "Lol" test) due to 15 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "665bf7fe4877415252d32ccc5246700ffab8614bd2b7a2942a25c6538a91a525", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "665bf7fe4877415252d32ccc5246700ffab8614bd2b7a2942a25c6538a91a525", kill_on_drop: false }`
[INFO] [stdout] 665bf7fe4877415252d32ccc5246700ffab8614bd2b7a2942a25c6538a91a525
